def calculate_bmr(sex, age, height, weight):
    """
    根据输入的参数计算基础代谢率（BMR）。
    :param sex: 'M' 代表男性, 'F' 代表女性
    :param age: 年龄（岁）
    :param height: 身高（厘米）
    :param weight: 体重（千克）
    :return: 计算得出的BMR
    """
    if sex == 'M':
        # 男性的BMR计算公式
        bmr = 66 + (13.7 * weight) + (5 * height) - (6.8 * age)
    else:
        # 女性的BMR计算公式
        bmr = 655 + (4.35 * weight) + (4.7 * height) - (4.7 * age)
    return bmr

def health_analysis(bmr):
    """
    根据BMR值提供简单的健康分析。
    :param bmr: 计算得出的BMR
    :return: 包含分析结果的字符串
    """
    if bmr < 1200:
        return "您的BMR值较低，表明您的身体基础代谢较慢。建议您咨询医生或营养师，制定合适的饮食和运动计划。"
    elif 1200 <= bmr <= 1600:
        return "您的BMR值处于正常范围。请继续保持健康的生活习惯。"
    else:
        return "您的BMR值较高，表明您的身体基础代谢较快。请确保摄入足够的营养，并保持适量的运动。"

# 获取用户输入，并处理错误
while True:
    sex = input("请输入您的性别（'M' 代表男性, 'F' 代表女性）：").upper()
    if sex == 'M' or sex == 'F':
        break
    else:
        print("输入错误，请输入'M'或'F'。")

while True:
    try:
        age = int(input("请输入您的年龄（岁）："))
        if 1 <= age <= 120:
            break
        else:
            print("输入错误，年龄必须在1到120岁之间。")
    except ValueError:
        print("输入错误，请输入一个有效的数字。")

while True:
    try:
        height_input = input("请输入您的身高（厘米或米）：")
        if height_input.count('.') > 0:  # 如果输入包含小数点
            height = float(height_input)
            if height < 3:  # 如果身高小于3米，则认为是厘米
                height = int(height)
            elif 1.5 <= height <= 2.0:  # 如果身高在1.5米到2.0米之间，则认为是米，并转换为厘米
                height = height * 100
            else:
                print("输入错误，请输入一个有效的身高值。")
        else:
            height = int(height_input)  # 如果没有小数点，则认为是厘米
        if 150 <= height <= 200:
            break
        else:
            print("输入错误，身高必须在150到200厘米之间。")
    except ValueError:
        print("输入错误，请输入一个有效的数字，并确保单位是厘米或米。")

while True:
    try:
        weight = int(input("请输入您的体重（千克）："))
        if 40 <= weight <= 150:
            break
        else:
            print("输入错误，体重必须在40到150千克之间。")
    except ValueError:
        print("输入错误，请输入一个有效的数字。")

bmr = calculate_bmr(sex, age, height, weight)
analysis = health_analysis(bmr)

print("您的BMR值为：", bmr, "卡路里。")
print(analysis)

